﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SCO.BE;
using SCO.BL.Interfaces;
using SCO.DAO.Interfaces;
using SCO.DAO.SqlDataAdapter;
namespace SCO.BL.Service
{
    public class CitaService : ICitaService
    {

        public readonly IDaoFactory datoFactory;

        public CitaService(IDaoFactory daoFactory)
        {
            this.datoFactory = daoFactory;
        }

        public citaBE grabar(citaBE objeto, ref string mensajeRespuesta, ref string tipoMensaje)
        {
            ICitaDAO citaDAO = datoFactory.getCitaDAO();
            return citaDAO.registrar(objeto, ref mensajeRespuesta, ref tipoMensaje);
        }

        public citaBE eliminar(citaBE objeto, ref string mensajeRespuesta, ref string tipoMensaje)
        {
            throw new NotImplementedException();
        }

        public citaBE buscar(citaBE objeto)
        {
            ICitaDAO citaDAO = datoFactory.getCitaDAO();
            return citaDAO.buscar(objeto);
        }

        public List<citaBE> listarGeneral()
        {
            throw new NotImplementedException();
        }

        public List<citaBE> listarPaginado(citaBE objeto, int index, int registros, ref int totalPaginas)
        {
            ICitaDAO citaDAO = datoFactory.getCitaDAO();
            return citaDAO.listarPaginado(objeto, index, registros, ref totalPaginas);
        }


        public citaBE buscarId(int Id)
        {
            ICitaDAO citaDAO = datoFactory.getCitaDAO();
            return citaDAO.buscarId(Id);
        }

        public citaBE reprogramarCita(citaBE objeto, ref string mensajeRespuesta, ref string tipoMensaje)
        {
            ICitaDAO citaDAO = datoFactory.getCitaDAO();
            return citaDAO.reprogramarCita(objeto, ref mensajeRespuesta, ref tipoMensaje);
        }


        public citaBE atenderCita(citaBE objeto, ref string mensajeRespuesta, ref string tipoMensaje)
        {
            ICitaDAO citaDAO = datoFactory.getCitaDAO();
            return citaDAO.atenderCita(objeto, ref mensajeRespuesta, ref tipoMensaje);
        }


        public citaBE cancelarCita(citaBE objeto, ref string mensajeRespuesta, ref string tipoMensaje)
        {
            ICitaDAO citaDAO = datoFactory.getCitaDAO();
            return citaDAO.cancelarCita(objeto, ref mensajeRespuesta, ref tipoMensaje);            
        }


        public List<citaBE> datosHistorialUsuario(citaBE objeto)
        {
            ICitaDAO citaDAO = datoFactory.getCitaDAO();
            return citaDAO.datosHistorialUsuario(objeto);   
        }


        public void restaurarCita(string CODCIT)
        {
            ICitaDAO citaDAO = datoFactory.getCitaDAO();
            citaDAO.restaurarCita(CODCIT);  
        }
    }
}
